import React, { useState } from "react";
import type { FormProps } from "antd";
import api from '../../api/axios'
import { Checkbox, Form, Input, Modal, Button } from "antd";
import { useNavigate } from "react-router-dom";

type FieldType = {
  account?: string;
  password?: string;
  remember?: string;
};

function Index() {
  const [isModalOpen, setIsModalOpen] = useState(false);
  const navigate = useNavigate()
  const showModal = () => {
    setIsModalOpen(true);
  };

  const handleOk = () => {
    setIsModalOpen(false);
  };

  const handleCancel = () => {
    setIsModalOpen(false);
  };
  const onFinish: FormProps<FieldType>["onFinish"] =async(values) => {
    console.log("Success:", values);
    const res = await api.post('/login',values)
    const {status,data} = res
    console.log(res)
    if(status==200){
      localStorage.setItem('token',data.token)
      localStorage.setItem('role',data.role)
      localStorage.setItem('username',data.username)
      localStorage.setItem('userId',data.userId)
      navigate('/')
    }
  };

  const onFinishFailed: FormProps<FieldType>["onFinishFailed"] = (
    errorInfo
  ) => {
    console.log("Failed:", errorInfo);
  };
  return (
    <div>
      <Button type="primary" onClick={showModal}>
        登录
      </Button>
      <Modal
        title="用户登录"
        closable={{ "aria-label": "Custom Close Button" }}
        open={isModalOpen}
        onOk={handleOk}
        onCancel={handleCancel}
      >
        <Form
          name="basic"
          labelCol={{ span: 8 }}
          wrapperCol={{ span: 16 }}
          style={{ maxWidth: 600 }}
          initialValues={{ remember: true }}
          onFinish={onFinish}
          onFinishFailed={onFinishFailed}
          autoComplete="off"
        >
          <Form.Item<FieldType>
            label="账户名"
            name="account"
            rules={[{ required: true, message: "Please input your username!" }]}
          >
            <Input />
          </Form.Item>

          <Form.Item<FieldType>
            label="密码"
            name="password"
            rules={[{ required: true, message: "Please input your password!" }]}
          >
            <Input.Password />
          </Form.Item>

          <Form.Item<FieldType>
            name="remember"
            valuePropName="checked"
            label={null}
          >
            <Checkbox>Remember me</Checkbox>
          </Form.Item>

          <Form.Item label={null}>
            <Button type="primary" htmlType="submit">
              登录
            </Button>
          </Form.Item>
        </Form>
      </Modal>
    </div>
  );
}

export default Index;
